package top.yueyazhui.repeat_submit.filter;

import org.springframework.util.StringUtils;
import top.yueyazhui.repeat_submit.wrapper.RepeatableReadRequestWrapper;
import top.yueyazhui.repeat_submit.wrapper.RequestWrapper;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class RepeatableReadRequestFilter implements Filter {

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        if (StringUtils.startsWithIgnoreCase(request.getContentType(), "application/json")) {
            //RepeatableReadRequestWrapper requestWrapper = new RepeatableReadRequestWrapper(request, response);
            RequestWrapper requestWrapper = new RequestWrapper(request);
            filterChain.doFilter(requestWrapper, response);
            return;
        }
        filterChain.doFilter(request, response);
    }
}
